<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


</body>
<script>

    //   3. 定义一个30项的数组，数组的每一项要求都是6，每间隔5个数字，求出这五个数的平均值
    //      定义一个30项的数组，数组的每一项要求都是1~9之间的随机数，每间隔5个数字，求出这五个数的平均值

    function initDatabase() {
        var arr = new Array(30);
        function random(min, max) {
            return Math.round(Math.random() * (max - min) + min);
        }
        for (let i = 0; i < arr.length; i++) {
            arr[i] = random(1, 9);
        }
        return arr;
    }

    function getAvgArr(arr) {
        var avgArr = [];
        for (let i = 0; i < arr.length; i += 5) {
            avgArr.unshift(avg(arr.slice(i, i + 5)));
        }
        return avgArr;
    }

    function avg(arr){
        var sum = 0;
        let length = arr.length;
        for (let i = 0; i < length; i++) {
            sum += arr[i];
        }
        return sum / length;
    }

    var arr = initDatabase();
    var avgArr = getAvgArr(arr);
    console.log(avgArr);

    //   4. 通过循环制造一个5 x 5的二维数组，这个数组中的数据是hello，试编程
    //      通过循环制造一个5 x 5的二维数组，这个数组中的数据是1~9之间的随机数，试编程
    //   - [[],[],[],[],[]]
    const outer = [];
    for (let i = 0; i < 5; i++) {
        const inner = [];
        for (let j = 0; j < 5; j++) {
            inner.push(random(1, 9))
        }
        outer.push(inner);
    }

    console.log(outer);
    //   5. 编写函数 map(arr)，要求把数组中的每一位数字都增加30%
    function map(arr) {
        for (let i = 0; i < arr.length; i++) {
            arr[i] = Number(arr[i] * 1.3);
        }
        return arr;
    }
    console.log(map([10, 20, 40]));

    //   6. 编写函数 has(arr, 60)，要求判断数组中是否存在60这个元素，返回布尔类型
    function has(arr, num) {
        for (let i = 0; i < arr.length; i++) {
            if (arr[i] === num) {
                return true;
            }
        }
    }

    console.log(has([1, 2, 3], 4));
    console.log(has([1, 2, 3], 3));

    //   7. 编写函数 norepeat(arr)，要求将数组的重复元素去掉，并返回新的数组
    function noRepeat(arr) {
        var array = [];
        for (var i = 0; i < arr.length; i++) {
            if (array .indexOf(arr[i]) === -1) {
                array .push(arr[i])
            }
        }
        return array;
    }
    console.log(noRepeat([1, 2, 2, 3, 3]));

    //   8. 有一个从小到大排好序的数组。现输入一个数，要求按原来的规律将它插入数组中

    function random(max, min) {
        return Math.round(Math.random() * (max - min) + min);
    }

</script>
</html>